package ar.com.osdepym.agregacionafip.servicios;

import java.io.FileNotFoundException;
import java.io.IOException;

import com.google.gson.Gson;

import ar.com.osdepym.agregacionafip.configuracion.ConfiguracionAplicacion;
import ar.com.osdepym.agregacionafip.exceptions.DirectorioInexistenteException;
import ar.com.osdepym.agregacionafip.exceptions.NoExisteConfiguracionException;

public class ServicioConfiguracion {
	
	public void guardarConfiguracion(ConfiguracionAplicacion config) {
		
		Gson json = new Gson();
		ServicioArchivos sa = new ServicioArchivos();
		
		String conf = json.toJson(config);
		
		String directorio = "data//programa//agregacion//afip";
		String nombreArchivo = "configuracion.txt";
		
		sa.escribir(directorio, nombreArchivo, conf);
		
		
		sa.crearDirectorio(config.getDirectorioEnProceso());
		sa.crearDirectorio(config.getDirectorioEntrada());
		sa.crearDirectorio(config.getDirectorioProcesados());
		
	}

	public ConfiguracionAplicacion buscarCofiguracion() throws NoExisteConfiguracionException{
		
		Gson json = new Gson();
		ServicioArchivos sa = new ServicioArchivos();
		String directorio = "data//programa//agregacion//afip";
		String nombreArchivo = "configuracion.txt";
		String configuracion = "";
		ConfiguracionAplicacion config = null;
		try {
			configuracion = sa.leerArchivo(directorio, nombreArchivo);
			
			config = json.fromJson(configuracion, ConfiguracionAplicacion.class);
			
			
		} catch (DirectorioInexistenteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		if(config == null){
			throw new NoExisteConfiguracionException();
		}
		return config;
	}
}
